import 'dart:math';
import 'package:get/get.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
import 'package:abc/model/user.dart';

class FollowController extends GetxController {
  // 数据列表
  List<User> items = [];
  
  // 页面类型：'follow' 表示关注列表，'fans' 表示粉丝列表
  String pageType = 'follow';
  
  RefreshController refreshController =
      RefreshController(initialRefresh: false);
      
  @override
  void onInit() {
    super.onInit();
    // 获取页面类型参数
    pageType = Get.arguments ?? 'follow';
    // 初始化时生成模拟数据
    generateInitialData();
  }
      
  // 生成初始模拟数据
  void generateInitialData() {
    // 生成25条假数据
    items = List.generate(25, (index) {
      final random = Random();
      
      // 随机生成用户名
      final usernames = ['用户A', '用户B', '用户C', '用户D', '用户E', '用户F', '用户G'];
      final username = usernames[random.nextInt(usernames.length)] + '${index + 1}';
      
      // 随机生成签名
      final signatures = [
        '这个人很懒，什么都没写',
        '热爱生活，追求梦想',
        '代码改变世界',
        '音乐是我的灵魂',
        '摄影爱好者',
        '旅行达人',
        '美食家'
      ];
      final signature = signatures[random.nextInt(signatures.length)];
      
      // 随机生成头像路径
      final avatar = 'assets/images/ic_default_header.png';
      
      return User(
        avatar: avatar,
        username: username,
        signature: signature,
      );
    });
  }

  void onRefresh() async{
    // 模拟网络请求延迟
    await Future.delayed(Duration(milliseconds: 1000));
    
    // 生成25条假数据
    items = List.generate(25, (index) {
      final random = Random();
      
      // 随机生成用户名
      final usernames = ['用户A', '用户B', '用户C', '用户D', '用户E', '用户F', '用户G'];
      final username = usernames[random.nextInt(usernames.length)] + '${index + 1}';
      
      // 随机生成签名
      final signatures = [
        '这个人很懒，什么都没写',
        '热爱生活，追求梦想',
        '代码改变世界',
        '音乐是我的灵魂',
        '摄影爱好者',
        '旅行达人',
        '美食家'
      ];
      final signature = signatures[random.nextInt(signatures.length)];
      
      // 随机生成头像路径
      final avatar = 'assets/images/ic_default_header.png';
      
      return User(
        avatar: avatar,
        username: username,
        signature: signature,
      );
    });
    
    refreshController.refreshCompleted(); // 完成刷新
  }

  void onLoading() async{
    // 模拟网络请求延迟
    await Future.delayed(Duration(milliseconds: 1000));
    
    // 添加更多假数据
    final random = Random();
    for (int i = 0; i < 5; i++) {
      // 随机生成用户名
      final usernames = ['用户A', '用户B', '用户C', '用户D', '用户E', '用户F', '用户G'];
      final username = usernames[random.nextInt(usernames.length)] + '${items.length + i + 1}';
      
      // 随机生成签名
      final signatures = [
        '这个人很懒，什么都没写',
        '热爱生活，追求梦想',
        '代码改变世界',
        '音乐是我的灵魂',
        '摄影爱好者',
        '旅行达人',
        '美食家'
      ];
      final signature = signatures[random.nextInt(signatures.length)];
      
      // 随机生成头像路径
      final avatar = 'assets/images/ic_default_header.png';
      
      items.add(User(
        avatar: avatar,
        username: username,
        signature: signature,
      ));
    }
    
    refreshController.loadComplete();
  }
  
  // 获取页面标题
  String get pageTitle {
    return pageType == 'follow' ? '关注' : '粉丝';
  }
}